package com.demo.webapp.ui.paging;

import com.demo.core.dao.base.support.PageSupport;
import com.demo.webapp.ui.ComponentBase;
/**
 * 分页(Paging)组件 
 * 分页组件提供分页所需要的数据
 * 这些数据是分页全局数据,是一些静态的公共数据。
 * 
 * @author ryuu.kk
 *
 */
public class PageComponent extends ComponentBase {

	/**
	 * 版本序列化ID
	 */
	private static final long serialVersionUID = 926288830206259292L;
	
	//考虑到复杂度,不使用模型配置分页的每页最大显示条数
	/**每页显示的最大条数**/
	//private int pageSize = Integer.MAX_VALUE;

	//当前页,最大显示条数,总页数,分页类型
	private PageSupport pageSupport;

	public PageSupport getPageSupport() {
		return pageSupport;
	}

	public void setPageSupport(PageSupport pageSupport) {
		this.pageSupport = pageSupport;
	}
	
	private String pageUrl;
	
	/**
	 * 克隆当前对象
	 * @return 分页容器
	 */
	public PageComponent clone() {
		
		PageComponent page = new PageComponent();
		
		page.setAlign(this.align);
		page.setAltImage(this.altImage);
		page.setDescription(description);
		page.setForward(forward);
		page.setHeight(height);
		page.setId(id);
		page.setImage(altImage);
		page.setLocation(location);
		page.setName(name);
		page.setOnclick(onclick);
		page.setOndblclick(ondblclick);
		page.setOnmouseout(onmouseout);
		page.setOnmouseover(onmouseover);
		page.setPage(this.page);
		page.setPermission(permission);
		page.setTarget(target);
		page.setTitle(title);
		page.setType(type);
		page.setUrl(url);
		page.setWidth(width);
		
		//page.setPageSize(pageSize);
		//其他引用对象将不做克隆,如果需要,序列化/反序列化后设置.
		
		return page;
	}

	/**
	 * 返回分页URL地址
	 * 
	 * @param pIndex 页码
	 * @return 分页URL地址
	 */
	public String getPageUrl(int pIndex) {
		String url = this.getUrl();
		if (url != null) {
			if (url.indexOf("?") > 0) {
				pageUrl = this.getUrl() + "&currentPage=" + pIndex;
			} else {
				pageUrl = this.getUrl() + "?currentPage=" + pIndex;
			}
		}
		return pageUrl;
	}

//	public int getPageSize() {
//		return pageSize;
//	}
//
//	public void setPageSize(int pageSize) {
//		this.pageSize = pageSize;
//	}
}
